#ifndef _DECK_H_
#define _DECK_H_

#include "libfun.h"
#include "mj.h"
#include "hole_mjs.h"
#include "common_mjs.h"

class Deck
{
    public:
		//装载一副麻将
		void fill();
		//打乱一副麻将
		bool shuffle(int seed);
		//一副麻将剩余麻将子的个数
		int count() const;
		//取出一张麻将
		bool pop(Mj &mj);
		
		//获取玩家的初始话手中麻将,闲家13张牌
		void get_player_hole_mjs(HoleMjs &_hole_mjs);
		//划分公共牌
		void get_common_mjs(CommonMjs &_comm_mjs);
		//获取特殊的牌组
		bool catch_spec(std::vector<Mj> vec);
	
		//配牌，用于单元逻辑测试
		void pei_player_hole_mjs1(HoleMjs &_hole_mjs);
		void pei_player_hole_mjs2(HoleMjs &_hole_mjs);
		void pei_player_hole_mjs3(HoleMjs &_hole_mjs);
		void pei_player_hole_mjs4(HoleMjs &_hole_mjs);
		
		/*
		//测试单元逻辑
		void test_tingpai();
		void test_hupai();
		void test_pengpenghu();
		void test_qidui();	
		*/
		
    public:
        std::vector<Mj> mjs;
    
};


#endif
